// Verilated -*- C++ -*-
// DESCRIPTION: Verilator output: Design implementation internals
// See VkeyFilter.h for the primary calling header

#include "verilated.h"

#include "VkeyFilter___024root.h"

VL_ATTR_COLD void VkeyFilter___024root___eval_initial(VkeyFilter___024root* vlSelf) {
    if (false && vlSelf) {}  // Prevent unused
    VkeyFilter__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp;
    VL_DEBUG_IF(VL_DBG_MSGF("+    VkeyFilter___024root___eval_initial\n"); );
    // Body
    vlSelf->__Vclklast__TOP__clk = vlSelf->clk;
    vlSelf->__Vclklast__TOP__rstn = vlSelf->rstn;
}

void VkeyFilter___024root___settle__TOP__2(VkeyFilter___024root* vlSelf);

VL_ATTR_COLD void VkeyFilter___024root___eval_settle(VkeyFilter___024root* vlSelf) {
    if (false && vlSelf) {}  // Prevent unused
    VkeyFilter__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp;
    VL_DEBUG_IF(VL_DBG_MSGF("+    VkeyFilter___024root___eval_settle\n"); );
    // Body
    VkeyFilter___024root___settle__TOP__2(vlSelf);
    vlSelf->__Vm_traceActivity[2U] = 1U;
    vlSelf->__Vm_traceActivity[1U] = 1U;
    vlSelf->__Vm_traceActivity[0U] = 1U;
}

VL_ATTR_COLD void VkeyFilter___024root___final(VkeyFilter___024root* vlSelf) {
    if (false && vlSelf) {}  // Prevent unused
    VkeyFilter__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp;
    VL_DEBUG_IF(VL_DBG_MSGF("+    VkeyFilter___024root___final\n"); );
}

VL_ATTR_COLD void VkeyFilter___024root___ctor_var_reset(VkeyFilter___024root* vlSelf) {
    if (false && vlSelf) {}  // Prevent unused
    VkeyFilter__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp;
    VL_DEBUG_IF(VL_DBG_MSGF("+    VkeyFilter___024root___ctor_var_reset\n"); );
    // Body
    vlSelf->clk = VL_RAND_RESET_I(1);
    vlSelf->rstn = VL_RAND_RESET_I(1);
    vlSelf->ikey = VL_RAND_RESET_I(1);
    vlSelf->okey = VL_RAND_RESET_I(1);
    vlSelf->keyFilter__DOT__cnt = VL_RAND_RESET_I(26);
    vlSelf->keyFilter__DOT__key_in_r = VL_RAND_RESET_I(1);
    vlSelf->keyFilter__DOT__key_pos = VL_RAND_RESET_I(1);
    vlSelf->keyFilter__DOT__key_neg = VL_RAND_RESET_I(1);
    vlSelf->keyFilter__DOT__nstate = VL_RAND_RESET_I(4);
    vlSelf->keyFilter__DOT__cstate = VL_RAND_RESET_I(4);
    for (int __Vi0=0; __Vi0<3; ++__Vi0) {
        vlSelf->__Vm_traceActivity[__Vi0] = VL_RAND_RESET_I(1);
    }
}
